<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  

  
  <title>wiki</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="just like a wiki">
<meta name="keywords" content="wiki">
<meta property="og:type" content="website">
<meta property="og:title" content="wiki">
<meta property="og:url" content="https://jpcui.github.io/wiki/page/4/index.html">
<meta property="og:site_name" content="wiki">
<meta property="og:description" content="just like a wiki">
<meta property="og:locale" content="default">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="wiki">
<meta name="twitter:description" content="just like a wiki">
  
    <link rel="alternate" href="/wiki/atom.xml" title="wiki" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.min.css">
  <link rel="stylesheet" href="/wiki/css/style.css">
</head>
</html>
<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
    <div id="banner"></div>
    <div id="header-outer" class="outer">
        <div id="header-title" class="inner">
            <h1 id="logo-wrap">
                <a href="/wiki/" id="logo">wiki</a>
            </h1>
            
                <h2 id="subtitle-wrap">
                    <a href="/wiki/" id="subtitle">just like a wiki</a>
                </h2>
            
        </div>
        <div id="header-inner" class="inner">
            <nav id="main-nav">
                <a id="main-nav-toggle" class="nav-icon"></a>
                
                    <a class="main-nav-link" href="/wiki/">Home</a>
                
                    <a class="main-nav-link" href="/wiki/archives">Archives</a>
                
            </nav>
            <nav id="sub-nav">
                
                    <a id="nav-rss-link" class="nav-icon" href="/wiki/atom.xml" title="RSS Feed"></a>
                
                <a id="nav-search-btn" class="nav-icon" title="Search"></a>
            </nav>
            <div id="search-form-wrap">
                <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="https://jpcui.github.io/wiki"></form>
            </div>
        </div>
    </div>
</header>
      <div class="outer">
        <section id="main">
  
    <article id="post-【beego】工作流程" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【beego】工作流程/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【beego】工作流程/">
                【beego】工作流程
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h2 id="请求流程"><a href="#请求流程" class="headerlink" title="请求流程"></a>请求流程</h2><p>app.go =&gt; <code>init()</code> // 初始化 BeeApp， 创建 ControllerRegister</p>
<p><code>ControllerRegister</code>[/github.com/astaxie/beego/router.go:125]</p>
<p>可以看出 App 结构体的组成: <code>{
    Handlers *ControllerRegister
    Server *http.Server
}</code><br>在 app.go:104 看到，将 app.Server.Handler 赋值为 app.Handlers</p>
<p>那么，这边有人问了，这个 Handler 要干嘛用的呢？说起 Handler 的作用，就要扯一下 go 里面的 http 请求流程，</p>
<p>请求开始处理的地方：</p>
<p><code>func (c \*conn) serve(ctx context.Context)</code>[/net/http/server.go:1739] -&gt; <code>serverHandler{c.server}.ServeHTTP(w, w.req)</code></p>
<p><code>func (sh serverHandler) ServeHTTP(rw ResponseWriter, req *Request)</code> -&gt; <code>handler.ServeHTTP(rw, req)</code></p>
<p>这里 <code>Handler.ServeHTTP</code> 是一个接口， 而 <code>ControllerRegister</code> 也实现了该接口，我们再去看看具体实现，记录几个比较有意思的地方：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br></pre></td><td class="code"><pre><span class="line">// Implement http.Handler interface.</span><br><span class="line">func (p *ControllerRegister) ServeHTTP(rw http.ResponseWriter, r *http.Request) &#123;</span><br><span class="line">	startTime := time.Now()</span><br><span class="line">	var (</span><br><span class="line">		runRouter    reflect.Type</span><br><span class="line">		findRouter   bool</span><br><span class="line">		runMethod    string</span><br><span class="line">		methodParams []*param.MethodParam</span><br><span class="line">		routerInfo   *ControllerInfo</span><br><span class="line">		isRunnable   bool</span><br><span class="line">	)</span><br><span class="line">	// :star:✨✨✨ 这里用到了一个pool，用来存取 `beecontext.Context` ，用完又Put放回去了。回头详细了解下 pool 的作用</span><br><span class="line">	context := p.pool.Get().(*beecontext.Context)</span><br><span class="line">	// ✨✨✨ 设置context，关联Request.Context = context</span><br><span class="line">	context.Reset(rw, r)</span><br><span class="line"></span><br><span class="line">	defer p.pool.Put(context)</span><br><span class="line">	if BConfig.RecoverFunc != nil &#123;</span><br><span class="line">		// ✨✨✨ 具体实现：/github.com/astaxie/beego/config.go: 204[newBConfig],161[recoverPanic] </span><br><span class="line">		defer BConfig.RecoverFunc(context)</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	...</span><br><span class="line">	...</span><br><span class="line">	...</span><br><span class="line"></span><br><span class="line">	// ✨✨✨ 静态文件过滤器</span><br><span class="line">	// filter for static file</span><br><span class="line">	if len(p.filters[BeforeStatic]) &gt; 0 &amp;&amp; p.execFilter(context, urlPath, BeforeStatic) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line">	// ✨✨✨ 根据请求uri查找静态文件，比如：favicon.ico，robots.txt</span><br><span class="line">	serverStaticRouter(context)</span><br><span class="line">	// ✨✨✨ 当路由到静态文件时，调用 `ResponseWriter.write` 将 Started=true，即当前请求处理完成</span><br><span class="line">	if context.ResponseWriter.Started &#123;</span><br><span class="line">		findRouter = true</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	if r.Method != http.MethodGet &amp;&amp; r.Method != http.MethodHead &#123;</span><br><span class="line">		if BConfig.CopyRequestBody &amp;&amp; !context.Input.IsUpload() &#123;</span><br><span class="line">			context.Input.CopyBody(BConfig.MaxMemory)</span><br><span class="line">		&#125;</span><br><span class="line">		context.Input.ParseFormOrMulitForm(BConfig.MaxMemory)</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	// ✨✨✨ 这里开始处理Session了，不过我们是接口服务，一般可以把session关闭，即 `SessionOn=False`</span><br><span class="line">	// session init</span><br><span class="line">	if BConfig.WebConfig.Session.SessionOn &#123;</span><br><span class="line">		var err error</span><br><span class="line">		context.Input.CruSession, err = GlobalSessions.SessionStart(rw, r)</span><br><span class="line">		if err != nil &#123;</span><br><span class="line">			logs.Error(err)</span><br><span class="line">			exception(&quot;503&quot;, context)</span><br><span class="line">			goto Admin</span><br><span class="line">		&#125;</span><br><span class="line">		defer func() &#123;</span><br><span class="line">			if context.Input.CruSession != nil &#123;</span><br><span class="line">				context.Input.CruSession.SessionRelease(rw)</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;()</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	// ✨✨✨ 过滤器，这个过滤器filters的实现结构很有意思，结构是个二元数组，根据下标存放不同功能的filter数组</span><br><span class="line">	// ✨✨✨ 而这个下标正好用到了不常见的`iota`</span><br><span class="line">	if len(p.filters[BeforeRouter]) &gt; 0 &amp;&amp; p.execFilter(context, urlPath, BeforeRouter) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line">	// ✨✨✨ Input 怎么用的？还得深究一下</span><br><span class="line">	// User can define RunController and RunMethod in filter</span><br><span class="line">	if context.Input.RunController != nil &amp;&amp; context.Input.RunMethod != &quot;&quot; &#123;</span><br><span class="line">		findRouter = true</span><br><span class="line">		runMethod = context.Input.RunMethod</span><br><span class="line">		runRouter = context.Input.RunController</span><br><span class="line">	&#125; else &#123;</span><br><span class="line">		// ✨✨✨ 查找路由</span><br><span class="line">		routerInfo, findRouter = p.FindRouter(context)</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	//if no matches to url, throw a not found exception</span><br><span class="line">	if !findRouter &#123;</span><br><span class="line">		exception(&quot;404&quot;, context)</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line">	if splat := context.Input.Param(&quot;:splat&quot;); splat != &quot;&quot; &#123;</span><br><span class="line">		for k, v := range strings.Split(splat, &quot;/&quot;) &#123;</span><br><span class="line">			context.Input.SetParam(strconv.Itoa(k), v)</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	// ✨✨✨ ？？？</span><br><span class="line">	//execute middleware filters</span><br><span class="line">	if len(p.filters[BeforeExec]) &gt; 0 &amp;&amp; p.execFilter(context, urlPath, BeforeExec) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	//check policies</span><br><span class="line">	if p.execPolicy(context, urlPath) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	if routerInfo != nil &#123;</span><br><span class="line">		//store router pattern into context</span><br><span class="line">		context.Input.SetData(&quot;RouterPattern&quot;, routerInfo.pattern)</span><br><span class="line">		if routerInfo.routerType == routerTypeRESTFul &#123;</span><br><span class="line">			if _, ok := routerInfo.methods[r.Method]; ok &#123;</span><br><span class="line">				isRunnable = true</span><br><span class="line">				routerInfo.runFunction(context)</span><br><span class="line">			&#125; else &#123;</span><br><span class="line">				exception(&quot;405&quot;, context)</span><br><span class="line">				goto Admin</span><br><span class="line">			&#125;</span><br><span class="line">		&#125; else if routerInfo.routerType == routerTypeHandler &#123;</span><br><span class="line">			isRunnable = true</span><br><span class="line">			routerInfo.handler.ServeHTTP(rw, r)</span><br><span class="line">		&#125; else &#123;</span><br><span class="line">			runRouter = routerInfo.controllerType</span><br><span class="line">			methodParams = routerInfo.methodParams</span><br><span class="line">			method := r.Method</span><br><span class="line">			if r.Method == http.MethodPost &amp;&amp; context.Input.Query(&quot;_method&quot;) == http.MethodPost &#123;</span><br><span class="line">				method = http.MethodPut</span><br><span class="line">			&#125;</span><br><span class="line">			if r.Method == http.MethodPost &amp;&amp; context.Input.Query(&quot;_method&quot;) == http.MethodDelete &#123;</span><br><span class="line">				method = http.MethodDelete</span><br><span class="line">			&#125;</span><br><span class="line">			if m, ok := routerInfo.methods[method]; ok &#123;</span><br><span class="line">				runMethod = m</span><br><span class="line">			&#125; else if m, ok = routerInfo.methods[&quot;*&quot;]; ok &#123;</span><br><span class="line">				runMethod = m</span><br><span class="line">			&#125; else &#123;</span><br><span class="line">				runMethod = method</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	// also defined runRouter &amp; runMethod from filter</span><br><span class="line">	if !isRunnable &#123;</span><br><span class="line">		//Invoke the request handler</span><br><span class="line">		var execController ControllerInterface</span><br><span class="line">		if routerInfo != nil &amp;&amp; routerInfo.initialize != nil &#123;</span><br><span class="line">			// ✨✨✨ 反射获取到可执行的 `controller`</span><br><span class="line">			execController = routerInfo.initialize()</span><br><span class="line">		&#125; else &#123;</span><br><span class="line">			vc := reflect.New(runRouter)</span><br><span class="line">			var ok bool</span><br><span class="line">			execController, ok = vc.Interface().(ControllerInterface)</span><br><span class="line">			if !ok &#123;</span><br><span class="line">				panic(&quot;controller is not ControllerInterface&quot;)</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		// ✨✨✨ beego.controller 生命周期之 Init</span><br><span class="line">		//call the controller init function</span><br><span class="line">		execController.Init(context, runRouter.Name(), runMethod, execController)</span><br><span class="line"></span><br><span class="line">		// ✨✨✨ beego.controller 生命周期之 Prepare</span><br><span class="line">		//call prepare function</span><br><span class="line">		execController.Prepare()</span><br><span class="line"></span><br><span class="line">		//if XSRF is Enable then check cookie where there has any cookie in the  request&apos;s cookie _csrf</span><br><span class="line">		if BConfig.WebConfig.EnableXSRF &#123;</span><br><span class="line">			execController.XSRFToken()</span><br><span class="line">			if r.Method == http.MethodPost || r.Method == http.MethodDelete || r.Method == http.MethodPut ||</span><br><span class="line">				(r.Method == http.MethodPost &amp;&amp; (context.Input.Query(&quot;_method&quot;) == http.MethodDelete || context.Input.Query(&quot;_method&quot;) == http.MethodPut)) &#123;</span><br><span class="line">				execController.CheckXSRFCookie()</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		execController.URLMapping()</span><br><span class="line"></span><br><span class="line">		if !context.ResponseWriter.Started &#123;</span><br><span class="line">			//exec main logic</span><br><span class="line">			switch runMethod &#123;</span><br><span class="line">			case http.MethodGet:</span><br><span class="line">				execController.Get()</span><br><span class="line">			case http.MethodPost:</span><br><span class="line">				execController.Post()</span><br><span class="line">			case http.MethodDelete:</span><br><span class="line">				execController.Delete()</span><br><span class="line">			case http.MethodPut:</span><br><span class="line">				execController.Put()</span><br><span class="line">			case http.MethodHead:</span><br><span class="line">				execController.Head()</span><br><span class="line">			case http.MethodPatch:</span><br><span class="line">				execController.Patch()</span><br><span class="line">			case http.MethodOptions:</span><br><span class="line">				execController.Options()</span><br><span class="line">			default:</span><br><span class="line">				if !execController.HandlerFunc(runMethod) &#123;</span><br><span class="line">					vc := reflect.ValueOf(execController)</span><br><span class="line">					method := vc.MethodByName(runMethod)</span><br><span class="line">					in := param.ConvertParams(methodParams, method.Type(), context)</span><br><span class="line">					out := method.Call(in)</span><br><span class="line"></span><br><span class="line">					//For backward compatibility we only handle response if we had incoming methodParams</span><br><span class="line">					if methodParams != nil &#123;</span><br><span class="line">						p.handleParamResponse(context, execController, out)</span><br><span class="line">					&#125;</span><br><span class="line">				&#125;</span><br><span class="line">			&#125;</span><br><span class="line"></span><br><span class="line">			//render template</span><br><span class="line">			if !context.ResponseWriter.Started &amp;&amp; context.Output.Status == 0 &#123;</span><br><span class="line">				if BConfig.WebConfig.AutoRender &#123;</span><br><span class="line">					if err := execController.Render(); err != nil &#123;</span><br><span class="line">						logs.Error(err)</span><br><span class="line">					&#125;</span><br><span class="line">				&#125;</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		// ✨✨✨ beego.controller 生命周期之 Finish</span><br><span class="line">		// finish all runRouter. release resource</span><br><span class="line">		execController.Finish()</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	//execute middleware filters</span><br><span class="line">	if len(p.filters[AfterExec]) &gt; 0 &amp;&amp; p.execFilter(context, urlPath, AfterExec) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	if len(p.filters[FinishRouter]) &gt; 0 &amp;&amp; p.execFilter(context, urlPath, FinishRouter) &#123;</span><br><span class="line">		goto Admin</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">Admin:</span><br><span class="line">	// ✨✨✨ 记录执行信息</span><br><span class="line">	//admin module record QPS</span><br><span class="line"></span><br><span class="line">	statusCode := context.ResponseWriter.Status</span><br><span class="line">	if statusCode == 0 &#123;</span><br><span class="line">		statusCode = 200</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	logAccess(context, &amp;startTime, statusCode)</span><br><span class="line"></span><br><span class="line">	timeDur := time.Since(startTime)</span><br><span class="line">	context.ResponseWriter.Elapsed = timeDur</span><br><span class="line">	if BConfig.Listen.EnableAdmin &#123;</span><br><span class="line">		pattern := &quot;&quot;</span><br><span class="line">		if routerInfo != nil &#123;</span><br><span class="line">			pattern = routerInfo.pattern</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		if FilterMonitorFunc(r.Method, r.URL.Path, timeDur, pattern, statusCode) &#123;</span><br><span class="line">			if runRouter != nil &#123;</span><br><span class="line">				go toolbox.StatisticsMap.AddStatistics(r.Method, r.URL.Path, runRouter.Name(), timeDur)</span><br><span class="line">			&#125; else &#123;</span><br><span class="line">				go toolbox.StatisticsMap.AddStatistics(r.Method, r.URL.Path, &quot;&quot;, timeDur)</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	if BConfig.RunMode == DEV &amp;&amp; !BConfig.Log.AccessLogs &#123;</span><br><span class="line">		var devInfo string</span><br><span class="line">		iswin := (runtime.GOOS == &quot;windows&quot;)</span><br><span class="line">		statusColor := logs.ColorByStatus(iswin, statusCode)</span><br><span class="line">		methodColor := logs.ColorByMethod(iswin, r.Method)</span><br><span class="line">		resetColor := logs.ColorByMethod(iswin, &quot;&quot;)</span><br><span class="line">		if findRouter &#123;</span><br><span class="line">			if routerInfo != nil &#123;</span><br><span class="line">				devInfo = fmt.Sprintf(&quot;|%15s|%s %3d %s|%13s|%8s|%s %-7s %s %-3s   r:%s&quot;, context.Input.IP(), statusColor, statusCode,</span><br><span class="line">					resetColor, timeDur.String(), &quot;match&quot;, methodColor, r.Method, resetColor, r.URL.Path,</span><br><span class="line">					routerInfo.pattern)</span><br><span class="line">			&#125; else &#123;</span><br><span class="line">				devInfo = fmt.Sprintf(&quot;|%15s|%s %3d %s|%13s|%8s|%s %-7s %s %-3s&quot;, context.Input.IP(), statusColor, statusCode, resetColor,</span><br><span class="line">					timeDur.String(), &quot;match&quot;, methodColor, r.Method, resetColor, r.URL.Path)</span><br><span class="line">			&#125;</span><br><span class="line">		&#125; else &#123;</span><br><span class="line">			devInfo = fmt.Sprintf(&quot;|%15s|%s %3d %s|%13s|%8s|%s %-7s %s %-3s&quot;, context.Input.IP(), statusColor, statusCode, resetColor,</span><br><span class="line">				timeDur.String(), &quot;nomatch&quot;, methodColor, r.Method, resetColor, r.URL.Path)</span><br><span class="line">		&#125;</span><br><span class="line">		if iswin &#123;</span><br><span class="line">			logs.W32Debug(devInfo)</span><br><span class="line">		&#125; else &#123;</span><br><span class="line">			logs.Debug(devInfo)</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line">	// Call WriteHeader if status code has been set changed</span><br><span class="line">	if context.Output.Status != 0 &#123;</span><br><span class="line">		context.ResponseWriter.WriteHeader(context.Output.Status)</span><br><span class="line">	&#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【beego】工作流程/" data-id="cjs5isv0t002oiuuir4drv5dy" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/beego/">beego</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/golang/">golang</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【项目管理】intellij-java-google-style-sucre" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【项目管理】intellij-java-google-style-sucre/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【项目管理】intellij-java-google-style-sucre/">
                intellij-java-google-style-sucre
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br><span class="line">384</span><br><span class="line">385</span><br><span class="line">386</span><br><span class="line">387</span><br><span class="line">388</span><br><span class="line">389</span><br><span class="line">390</span><br><span class="line">391</span><br><span class="line">392</span><br><span class="line">393</span><br><span class="line">394</span><br><span class="line">395</span><br><span class="line">396</span><br><span class="line">397</span><br><span class="line">398</span><br><span class="line">399</span><br><span class="line">400</span><br><span class="line">401</span><br><span class="line">402</span><br><span class="line">403</span><br><span class="line">404</span><br><span class="line">405</span><br><span class="line">406</span><br><span class="line">407</span><br><span class="line">408</span><br><span class="line">409</span><br><span class="line">410</span><br><span class="line">411</span><br><span class="line">412</span><br><span class="line">413</span><br><span class="line">414</span><br><span class="line">415</span><br><span class="line">416</span><br><span class="line">417</span><br><span class="line">418</span><br><span class="line">419</span><br><span class="line">420</span><br><span class="line">421</span><br><span class="line">422</span><br><span class="line">423</span><br><span class="line">424</span><br><span class="line">425</span><br><span class="line">426</span><br><span class="line">427</span><br><span class="line">428</span><br><span class="line">429</span><br><span class="line">430</span><br><span class="line">431</span><br><span class="line">432</span><br><span class="line">433</span><br><span class="line">434</span><br><span class="line">435</span><br><span class="line">436</span><br><span class="line">437</span><br><span class="line">438</span><br><span class="line">439</span><br><span class="line">440</span><br><span class="line">441</span><br><span class="line">442</span><br><span class="line">443</span><br><span class="line">444</span><br><span class="line">445</span><br><span class="line">446</span><br><span class="line">447</span><br><span class="line">448</span><br><span class="line">449</span><br><span class="line">450</span><br><span class="line">451</span><br><span class="line">452</span><br><span class="line">453</span><br><span class="line">454</span><br><span class="line">455</span><br><span class="line">456</span><br><span class="line">457</span><br><span class="line">458</span><br><span class="line">459</span><br><span class="line">460</span><br><span class="line">461</span><br><span class="line">462</span><br><span class="line">463</span><br><span class="line">464</span><br><span class="line">465</span><br><span class="line">466</span><br><span class="line">467</span><br><span class="line">468</span><br><span class="line">469</span><br><span class="line">470</span><br><span class="line">471</span><br><span class="line">472</span><br><span class="line">473</span><br><span class="line">474</span><br><span class="line">475</span><br><span class="line">476</span><br><span class="line">477</span><br><span class="line">478</span><br><span class="line">479</span><br><span class="line">480</span><br><span class="line">481</span><br><span class="line">482</span><br><span class="line">483</span><br><span class="line">484</span><br><span class="line">485</span><br><span class="line">486</span><br><span class="line">487</span><br><span class="line">488</span><br><span class="line">489</span><br><span class="line">490</span><br><span class="line">491</span><br><span class="line">492</span><br><span class="line">493</span><br><span class="line">494</span><br><span class="line">495</span><br><span class="line">496</span><br><span class="line">497</span><br><span class="line">498</span><br><span class="line">499</span><br><span class="line">500</span><br><span class="line">501</span><br><span class="line">502</span><br><span class="line">503</span><br><span class="line">504</span><br><span class="line">505</span><br><span class="line">506</span><br><span class="line">507</span><br><span class="line">508</span><br><span class="line">509</span><br><span class="line">510</span><br><span class="line">511</span><br><span class="line">512</span><br><span class="line">513</span><br><span class="line">514</span><br><span class="line">515</span><br><span class="line">516</span><br><span class="line">517</span><br><span class="line">518</span><br><span class="line">519</span><br><span class="line">520</span><br><span class="line">521</span><br><span class="line">522</span><br><span class="line">523</span><br><span class="line">524</span><br><span class="line">525</span><br><span class="line">526</span><br><span class="line">527</span><br><span class="line">528</span><br><span class="line">529</span><br><span class="line">530</span><br><span class="line">531</span><br><span class="line">532</span><br><span class="line">533</span><br><span class="line">534</span><br><span class="line">535</span><br><span class="line">536</span><br><span class="line">537</span><br><span class="line">538</span><br><span class="line">539</span><br><span class="line">540</span><br><span class="line">541</span><br><span class="line">542</span><br><span class="line">543</span><br><span class="line">544</span><br><span class="line">545</span><br><span class="line">546</span><br><span class="line">547</span><br><span class="line">548</span><br><span class="line">549</span><br><span class="line">550</span><br><span class="line">551</span><br><span class="line">552</span><br><span class="line">553</span><br><span class="line">554</span><br><span class="line">555</span><br><span class="line">556</span><br><span class="line">557</span><br><span class="line">558</span><br><span class="line">559</span><br><span class="line">560</span><br><span class="line">561</span><br><span class="line">562</span><br><span class="line">563</span><br><span class="line">564</span><br><span class="line">565</span><br><span class="line">566</span><br><span class="line">567</span><br><span class="line">568</span><br><span class="line">569</span><br><span class="line">570</span><br><span class="line">571</span><br><span class="line">572</span><br><span class="line">573</span><br><span class="line">574</span><br><span class="line">575</span><br><span class="line">576</span><br><span class="line">577</span><br><span class="line">578</span><br><span class="line">579</span><br><span class="line">580</span><br><span class="line">581</span><br><span class="line">582</span><br><span class="line">583</span><br><span class="line">584</span><br><span class="line">585</span><br><span class="line">586</span><br><span class="line">587</span><br><span class="line">588</span><br><span class="line">589</span><br><span class="line">590</span><br><span class="line">591</span><br><span class="line">592</span><br><span class="line">593</span><br><span class="line">594</span><br><span class="line">595</span><br><span class="line">596</span><br><span class="line">597</span><br><span class="line">598</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">code_scheme</span> <span class="attr">name</span>=<span class="string">"GoogleStyle"</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"OTHER_INDENT_OPTIONS"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">value</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"USE_TAB_CHARACTER"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"SMART_TABS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"LABEL_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"LABEL_INDENT_ABSOLUTE"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"USE_RELATIVE_INDENTS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INSERT_INNER_CLASS_IMPORTS"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND"</span> <span class="attr">value</span>=<span class="string">"999"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND"</span> <span class="attr">value</span>=<span class="string">"999"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"PACKAGES_TO_USE_IMPORT_ON_DEMAND"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">value</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"IMPORT_LAYOUT_TABLE"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">value</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">package</span> <span class="attr">name</span>=<span class="string">""</span> <span class="attr">withSubpackages</span>=<span class="string">"true"</span> <span class="attr">static</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">emptyLine</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">package</span> <span class="attr">name</span>=<span class="string">""</span> <span class="attr">withSubpackages</span>=<span class="string">"true"</span> <span class="attr">static</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"100"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_ALIGN_PARAM_COMMENTS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_ALIGN_EXCEPTION_COMMENTS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_P_AT_EMPTY_LINES"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_KEEP_EMPTY_PARAMETER"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_KEEP_EMPTY_EXCEPTION"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"JD_KEEP_EMPTY_RETURN"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_CONTROL_STATEMENT_IN_ONE_LINE"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_BEFORE_RBRACE"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_IN_CODE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AFTER_CLASS_HEADER"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_PARAMETERS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_FOR"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CALL_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"EXTENDS_LIST_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"THROWS_KEYWORD_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_CALL_CHAIN_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_SIGN_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_STATEMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ARRAY_INITIALIZER_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WRAP_COMMENTS"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"IF_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"DOWHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">AndroidXmlCodeStyleSettings</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"USE_CUSTOM_SETTINGS"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"LAYOUT_SETTINGS"</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">value</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INSERT_BLANK_LINE_BEFORE_TAG"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">AndroidXmlCodeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">JSCodeStyleSettings</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_CHAINED_CALLS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">JSCodeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">Python</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"USE_CONTINUATION_INDENT_FOR_ARGUMENTS"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">Python</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">TypeScriptCodeStyleSettings</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_CHAINED_CALLS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">TypeScriptCodeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">XML</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"XML_ALIGN_ATTRIBUTES"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"XML_LEGACY_SETTINGS_IMPORTED"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">XML</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"CSS"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"ECMA Script Level 4"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_IN_CODE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_PARAMETERS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_FOR"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CALL_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"EXTENDS_LIST_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_SIGN_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_STATEMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ARRAY_INITIALIZER_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"IF_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"DOWHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"PARENT_SETTINGS_INSTALLED"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"HTML"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"JAVA"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_CONTROL_STATEMENT_IN_ONE_LINE"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_IN_CODE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AFTER_CLASS_HEADER"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_PARAMETERS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_RESOURCES"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_FOR"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CALL_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"EXTENDS_LIST_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"THROWS_KEYWORD_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_CALL_CHAIN_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_SIGN_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_STATEMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ARRAY_INITIALIZER_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WRAP_COMMENTS"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"IF_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"DOWHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"PARENT_SETTINGS_INSTALLED"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"JSON"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"JavaScript"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"80"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_IN_CODE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_PARAMETERS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_FOR"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CALL_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"METHOD_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_SIGN_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TERNARY_OPERATION_SIGNS_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_STATEMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ARRAY_INITIALIZER_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"IF_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"DOWHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"WHILE_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_BRACE_FORCE"</span> <span class="attr">value</span>=<span class="string">"3"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"PARENT_SETTINGS_INSTALLED"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"PROTO"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"80"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"protobuf"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"80"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"Python"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_IN_CODE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"80"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_PARAMETERS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"PARENT_SETTINGS_INSTALLED"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"SASS"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"SCSS"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"TypeScript"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"XML"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TAB_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">arrangement</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">rules</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>xmlns:android<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>^$<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>xmlns:.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>^$<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:id<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>style<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>^$<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>^$<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:.*Style<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_width<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_height<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_weight<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_margin<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginTop<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginBottom<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginStart<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginEnd<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginLeft<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_marginRight<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:layout_.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:padding<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingTop<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingBottom<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingStart<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingEnd<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingLeft<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*:paddingRight<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_ATTRIBUTE</span> /&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res/android<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/apk/res-auto<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>http://schemas.android.com/tools<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">section</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">rule</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">match</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;<span class="name">AND</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">NAME</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">NAME</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">XML_NAMESPACE</span>&gt;</span>.*<span class="tag">&lt;/<span class="name">XML_NAMESPACE</span>&gt;</span></span><br><span class="line">              <span class="tag">&lt;/<span class="name">AND</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">match</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">order</span>&gt;</span>BY_NAME<span class="tag">&lt;/<span class="name">order</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;/<span class="name">rule</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">section</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;/<span class="name">rules</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">arrangement</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">Objective-C</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_NAMESPACE_MEMBERS"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_C_STRUCT_MEMBERS"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_CLASS_MEMBERS"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_VISIBILITY_KEYWORDS"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_INSIDE_CODE_BLOCK"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_STRUCTURES_IN_ONE_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FUNCTION_PARAMETERS_WRAP"</span> <span class="attr">value</span>=<span class="string">"5"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FUNCTION_CALL_ARGUMENTS_WRAP"</span> <span class="attr">value</span>=<span class="string">"5"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TEMPLATE_CALL_ARGUMENTS_WRAP"</span> <span class="attr">value</span>=<span class="string">"5"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_INIT_LIST_IN_COLUMNS"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"SPACE_BEFORE_SUPERCLASS_COLON"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">Objective-C</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">Objective-C-extensions</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES"</span> <span class="attr">value</span>=<span class="string">"ASK"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RELEASE_STYLE"</span> <span class="attr">value</span>=<span class="string">"IVAR"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"TYPE_QUALIFIERS_PLACEMENT"</span> <span class="attr">value</span>=<span class="string">"BEFORE"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">file</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Import"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Macro"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Typedef"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Enum"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Constant"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Global"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Struct"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"FunctionPredecl"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Function"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">file</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">class</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Property"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"Synthesize"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"InitMethod"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"StaticMethod"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"InstanceMethod"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"com.jetbrains.cidr.lang.util.OCDeclarationKind"</span> <span class="attr">value</span>=<span class="string">"DeallocMethod"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">class</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">extensions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">pair</span> <span class="attr">source</span>=<span class="string">"cc"</span> <span class="attr">header</span>=<span class="string">"h"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">pair</span> <span class="attr">source</span>=<span class="string">"c"</span> <span class="attr">header</span>=<span class="string">"h"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">extensions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">Objective-C-extensions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">codeStyleSettings</span> <span class="attr">language</span>=<span class="string">"ObjectiveC"</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"RIGHT_MARGIN"</span> <span class="attr">value</span>=<span class="string">"80"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"KEEP_BLANK_LINES_BEFORE_RBRACE"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_BEFORE_IMPORTS"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AFTER_IMPORTS"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AROUND_CLASS"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AROUND_METHOD"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BLANK_LINES_AROUND_METHOD_IN_INTERFACE"</span> <span class="attr">value</span>=<span class="string">"0"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ALIGN_MULTILINE_BINARY_OPERATION"</span> <span class="attr">value</span>=<span class="string">"false"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"BINARY_OPERATION_SIGN_ON_NEXT_LINE"</span> <span class="attr">value</span>=<span class="string">"true"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"FOR_STATEMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"ASSIGNMENT_WRAP"</span> <span class="attr">value</span>=<span class="string">"1"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"2"</span> /&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">option</span> <span class="attr">name</span>=<span class="string">"CONTINUATION_INDENT_SIZE"</span> <span class="attr">value</span>=<span class="string">"4"</span> /&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">indentOptions</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">codeStyleSettings</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">code_scheme</span>&gt;</span></span><br></pre></td></tr></table></figure>
            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【项目管理】intellij-java-google-style-sucre/" data-id="cjs5isv0z002siuui1bb2k8wk" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/项目管理/">项目管理</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【spring-cloud】spring-cloud-config" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【spring-cloud】spring-cloud-config/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【spring-cloud】spring-cloud-config/">
                【spring-cloud】spring-cloud-config
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h2 id="server"><a href="#server" class="headerlink" title="server"></a>server</h2><ul>
<li><p>依赖</p>
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">dependency</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">groupId</span>&gt;</span>org.springframework.cloud<span class="tag">&lt;/<span class="name">groupId</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">artifactId</span>&gt;</span>spring-cloud-config-server<span class="tag">&lt;/<span class="name">artifactId</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">dependency</span>&gt;</span></span><br></pre></td></tr></table></figure>
</li>
<li><p>yml配置</p>
<figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">spring:</span></span><br><span class="line"><span class="attr">  cloud:</span></span><br><span class="line"><span class="attr">    config:</span></span><br><span class="line"><span class="attr">      server:</span></span><br><span class="line"><span class="attr">        git:</span></span><br><span class="line">          <span class="comment"># 配置的git路径</span></span><br><span class="line"><span class="attr">          uri:</span> <span class="attr">http://xxx/oasis-ct/oasis-ct-config.git</span></span><br><span class="line">          <span class="comment"># 查找路径</span></span><br><span class="line">          <span class="comment"># 默认查找根目录, 而且只查找一级目录</span></span><br><span class="line"><span class="attr">          search-paths:</span> <span class="string">repo</span></span><br><span class="line"><span class="attr">      profile:</span> <span class="string">$&#123;spring.profiles&#125;</span></span><br></pre></td></tr></table></figure>
</li>
</ul>
<blockquote>
<p>如果想把配置中心以服务的形式配置到consul中, 可以按照服务注册的形式进行配置</p>
</blockquote>
<h2 id="client"><a href="#client" class="headerlink" title="client"></a>client</h2><ul>
<li><p>依赖</p>
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">dependency</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">groupId</span>&gt;</span>org.springframework.cloud<span class="tag">&lt;/<span class="name">groupId</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">artifactId</span>&gt;</span>spring-cloud-starter-config<span class="tag">&lt;/<span class="name">artifactId</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">dependency</span>&gt;</span></span><br></pre></td></tr></table></figure>
</li>
<li><p>yml配置</p>
<figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">spring:</span></span><br><span class="line">    <span class="comment"># 配置中心</span></span><br><span class="line"><span class="attr">    config:</span></span><br><span class="line">      <span class="comment"># 1. 直接访问方式</span></span><br><span class="line"><span class="attr">      uri:</span> <span class="string">`&#123;config-server&#125;`</span></span><br><span class="line">      <span class="comment"># 2. 服务注册到consul, 需要按下面的方式配置      </span></span><br><span class="line"><span class="comment">#      discovery:</span></span><br><span class="line"><span class="comment">#        enabled: truegetDeliveryInfo</span></span><br><span class="line"><span class="comment">#        service-id: oasis-ct-config</span></span><br><span class="line"></span><br><span class="line">      <span class="comment"># 由于咱们的项目名比较长, 这里可以重命名, </span></span><br><span class="line">      <span class="comment"># 同时config服务里的配置文件的文件名命名方式: medicine-&#123;profile&#125;.yml</span></span><br><span class="line"><span class="attr">      name:</span> <span class="string">medicine</span></span><br><span class="line"><span class="attr">      profile:</span> <span class="string">$&#123;spring.profiles&#125;</span></span><br><span class="line"><span class="attr">      fail-fast:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure></li>
</ul>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【spring-cloud】spring-cloud-config/" data-id="cjs5isv08000riuuib9gpkivi" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/spring-cloud/">spring-cloud</a></li></ul>

        </footer>
    </div>
    
</article>


  


  <nav id="page-nav">
    
    <a class="extend prev" rel="prev" href="/wiki/page/3/">&laquo; Prev</a><a class="page-number" href="/wiki/">1</a><a class="page-number" href="/wiki/page/2/">2</a><a class="page-number" href="/wiki/page/3/">3</a><span class="page-number current">4</span>
  </nav>

</section>
        
          <aside id="sidebar">
  
    

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tags</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/beego/">beego</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/bootstrap/">bootstrap</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/consul/">consul</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/docker/">docker</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/elastic-job/">elastic-job</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/eventbus/">eventbus</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/feign/">feign</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/fileinput/">fileinput</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/golang/">golang</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/guava/">guava</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/hikari/">hikari</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/mgo/">mgo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/mybatis/">mybatis</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/php/">php</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/redis/">redis</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring/">spring</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-boot/">spring-boot</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-cloud/">spring-cloud</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-data/">spring-data</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/服务架构/">服务架构</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/项目管理/">项目管理</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tag Cloud</h3>
    <div class="widget tagcloud">
      <a href="/wiki/tags/beego/" style="font-size: 10px;">beego</a> <a href="/wiki/tags/bootstrap/" style="font-size: 10px;">bootstrap</a> <a href="/wiki/tags/consul/" style="font-size: 10px;">consul</a> <a href="/wiki/tags/docker/" style="font-size: 12.5px;">docker</a> <a href="/wiki/tags/elastic-job/" style="font-size: 10px;">elastic-job</a> <a href="/wiki/tags/eventbus/" style="font-size: 10px;">eventbus</a> <a href="/wiki/tags/feign/" style="font-size: 10px;">feign</a> <a href="/wiki/tags/fileinput/" style="font-size: 10px;">fileinput</a> <a href="/wiki/tags/git/" style="font-size: 10px;">git</a> <a href="/wiki/tags/golang/" style="font-size: 12.5px;">golang</a> <a href="/wiki/tags/guava/" style="font-size: 10px;">guava</a> <a href="/wiki/tags/hikari/" style="font-size: 10px;">hikari</a> <a href="/wiki/tags/mgo/" style="font-size: 10px;">mgo</a> <a href="/wiki/tags/mybatis/" style="font-size: 10px;">mybatis</a> <a href="/wiki/tags/php/" style="font-size: 10px;">php</a> <a href="/wiki/tags/redis/" style="font-size: 10px;">redis</a> <a href="/wiki/tags/spring/" style="font-size: 10px;">spring</a> <a href="/wiki/tags/spring-boot/" style="font-size: 15px;">spring-boot</a> <a href="/wiki/tags/spring-cloud/" style="font-size: 20px;">spring-cloud</a> <a href="/wiki/tags/spring-data/" style="font-size: 10px;">spring-data</a> <a href="/wiki/tags/服务架构/" style="font-size: 10px;">服务架构</a> <a href="/wiki/tags/项目管理/" style="font-size: 17.5px;">项目管理</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/wiki/archives/2019/02/">February 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/wiki/archives/2018/11/">November 2018</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/wiki/2019/02/12/todolist/">todolist</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【spring-cloud】spring-cloud-config/">【spring-cloud】spring-cloud-config</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【bootstrap】file-input/">【bootstrap】file-input</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【docker】杀不死的docker/">【docker】杀不死的docker</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【docker】创建java容器/">【docker】创建java容器</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
    
    <div class="outer">
        <div id="footer-info" class="left alignleft">
            &copy; 2019 Sucre Cui
            <br>
            Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
        </div>
        <div class="right alignright">
            <span id="busuanzi_container_site_pv">
                <i class="fa fa-eye" title="PV"></i> <span id="busuanzi_value_site_pv"><i class="fa fa-spinner"></i></span>
                <br>
                <i class="fa fa-user" title="UV"></i> <span id="busuanzi_value_site_uv"></span>
            </span>
            <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
        </div>
    </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/wiki/" class="mobile-nav-link">Home</a>
  
    <a href="/wiki/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//cdn.bootcss.com/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/wiki/fancybox/jquery.fancybox.css">
  <script src="/wiki/fancybox/jquery.fancybox.pack.js"></script>


<script src="/wiki/js/script.js"></script>



  </div>
</body>
</html>